/*给所有的input添加失去焦点事件
 1、判断input内的值是否为空
    若为空，显示不能为空的错误信息，return结束（不用继续判断）
    input值与正则表达式匹配，若正确提示正确信息，不匹配提示错误信息*/

//所有的input添加失去焦点事件
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
	inputs[i].onblur = inputBlur;
}

//定义失去焦点事件:判断内容是否为空，是否正确
function inputBlur() {
	//获取点钱input的name.value，提示信息
	var name = this.name;
	var value = this.value;
	var tips = this.placeholder;

	//获取显示正确或错误提示信息的div元素
	//根据input对象获取div：堂兄弟关系
	//根据当前input对象获取它的父亲，父亲的下一个兄弟，这个兄弟的第一个孩子
	var div = this.parentNode.nextElementSibling.firstChild;

	//去除value两端的空格
	value = value.trim();

	//判断当前input的value值，若为空，显示不能为空的信息，return结束(不用继续判断)
	if(value == null || value == '') {
		div.innerHTML = "输入框不能为空";
		//错误样式
		div.className = 'error';
	} else {
		//调用函数，根据当前input的name，获得input的正则表达式
		var reg = getReg(name);

		//判断input值与正则表达式是否匹配
		if(value.match(reg)) {
			div.innerHTML = "输入正确";
			div.className = 'success'
		} else {
			div.innerHTML = tips;
			//错误样式
			div.className = 'error';
		}
	}
}
//定义函数：input值与正则表达式匹配
//参数：name
//提示正确信息
function getReg(name) {
	var reg = '';
	switch(name) {
		case 'username':
		    //长度4~12,英文大小写字母
		    reg=/^[a-zA-Z]{4,12}$/;
		    break;
		    //长度6~20，大小写字母、数字或下划线
		case 'pwd':
		    //正则表达式内容是 密码输入框的值
		    reg=/^\w{6,20}$/;
		    break;
		case 'repwd':
		    //密码输入框的值
		    var pwd=document.getElementsByTagName('input')[1].value;
		    /*正则表达式：字面量&对象
		     var re=new RegExp("/w");
		     var re =/\w/;*/
		    reg=new RegExp('^'+pwd+'$')
		    break;
		    //13、14、15、17、18开头的11位手机号
		case 'tel':
		    reg=/^1[24578]\d{9}$/;
		    break;
		    //用户名@域名（域名后缀至少2个字符）
		case 'email':
		    reg=/^\w+@+\w+\.+\w{2,}$/;
		    break;
		default:
		    break;
		
	}
	return reg;
}
